<!--
  A background page that manages notifications.

  Copyright 2010 the Chromium Authors

  Use of this source code is governed by a BSD-style license that can be found
  in the "LICENSE" file.

  Brian Kennish <bkennish@chromium.org>
-->
<script>
  /*
    Displays a canned notification. Requires "notifications" permission in the
    manifest file (or calling "webkitNotifications.requestPermission"
    beforehand).
  */
  function show() {
    var notification = webkitNotifications.createNotification(
      '48.png',                                       // The image.
      'Some Very Urgent and Important Breaking News', // The title.
      'Cannonball!'                                   // The body.
    );
    notification.show();
  }

  // Conditionally initialize the options.
  if (!localStorage.isInitialized) {
    localStorage.isActivated = true;   // The display activation.
    localStorage.frequency = 1;        // The display frequency, in minutes.
    localStorage.isInitialized = true; // The option initialization.
  }

  // Test for notification support.
  if (webkitNotifications) {
    // While activated, show notifications at the display frequency.
    if (JSON.parse(localStorage.isActivated)) { show(); }

    var interval = 0; // The display interval, in minutes.

    setInterval(function() {
      interval++;

      if (
        JSON.parse(localStorage.isActivated) &&
          localStorage.frequency <= interval
      ) {
        show();
        interval = 0;
      }
    }, 60000);
  } else {
    // Show a new tab with an error message.
    chrome.tabs.create({url: 'error.html'});
  }
</script>
